package com.example.springboot.controller;


import com.example.springboot.Service.Course_selectService;
import com.example.springboot.entity.Course_select;
import com.example.springboot.entity.Student;
import com.example.springboot.mapper.Course_selectMapper;
import com.example.springboot.mapper.SperMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@RestController
@RequestMapping("/course_select")
public class Course_selectController {


    @Autowired
    private Course_selectService mapper;
    @Autowired
    private SperMapper sperMapper;
    @Autowired
    private Course_selectMapper course_selectMapper;


    //修改 增加  选课表的内容
    @PostMapping
    //  选课： 学号 课程号
    //  修改（管理员） ：  选课序号
//      录成绩（老师） ：  选课序号+成绩
    public int save(@RequestBody Course_select course_select){
        return  mapper.saveCouese_Select(course_select);
    }
    //返回全部数据 选课表
    @GetMapping
    public List<Course_select> findAll(){
        return course_selectMapper.findAll();
    }
    // 删除选课（用于退选）  用学号
    @DeleteMapping("/{id}")
    public Integer delete(@PathVariable Integer id){
        return course_selectMapper.delete(id);
    }

    // 返回 查询出来的选课信息页面   后期根据 其他条件增加

//    按照课程号查询  按照 学号查询
//    按照学号查询 选课记录

    @GetMapping("/page")
    public   Map<String,Object> findPage(@RequestParam Integer pageNum, @RequestParam Integer pageSize){
        pageNum = (pageNum - 1)*pageSize;
        Map<String,Object> res = new HashMap<>();
        //  选课记录 （学号） 课程号  课程名  教师  选课时间
        Integer sun =  course_selectMapper.selectTotal();  //总页数
        res.put("Total",sun);
        res.put("data",course_selectMapper.selectPage(pageNum,pageSize));
        return res;
    }
    @GetMapping("selectStuCourse")
    public List<Student>  selectStuCourse(@RequestParam Integer course_id){
          List<Student> students = course_selectMapper.getStudentOfCourse(course_id);
            students.forEach(student -> {
                student.setSper_name(sperMapper.findSperName(student.getSper_code()));
            });
        return students;
    }
}
